home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1982-09-15 | 2.9 KB | 139 lines |
- 10 DEFINT A-Z
- 20 DIM TARNAM$(12)
- 30 DEF FNRAND(N)=FIX((RND*(N-1))+1)
- 40 KEY OFF
- 50 FOR I=1 TO 12
- 60 READ TARNAM$(I)
- 70 NEXT I
- 80 DATA "JEFF ","ASIS ","RAJU ","MIKE ","TERRY","JANET","FRANK","NANCY"
- 90 DATA "MARK ","TOM ","DICK ","HARRY"
- 100 PLAY "MFO4"
- 110 CLS
- 120 R1 = 0 : R2 = 0
- 130 ITMCTR = 0 : GCNT = 2
- 140 GOSUB 1360
- 150 RANDOMIZE SECONDS
- 160 DELTA = (RND*7200)
- 170 GOSUB 1360
- 180 RANDOMIZE SECONDS
- 190 GUN = 0 ' GUN = FALSE
- 200 GROW = 22
- 210 GCOL = 59
- 220 TROW = 1
- 230 TCOL = 0
- 240 NOSHOT = 0
- 250 NOHIT = 0
- 260 NOTAR = 0
- 270 SCORE = 0
- 280 INPUT "WHAT IS YOUR SKILL LEVEL"; DIFLEV
- 290 IF (DIFLEV<1) OR (DIFLEV>10) THEN PRINT "?Skill level is between 1 and 10":GOTO 280
- 300 HWIN = 11 - DIFLEV
- 310 GOSUB 590 ' CALL SCREEN(DIFLEV)
- 320 ITMCTR = ITMCTR + 1
- 330 IF ITMCTR>10000 THEN ITMCTR=0
- 340 IF TCOL>=1 THEN 390
- 350 GOSUB 760 ' CALL NEWTAR(TARNAM,TARARR,TROW,R1,R2)
- 360 TCNT = 3 * RND + 1
- 370 NOTAR = NOTAR + 1
- 380 TCOL = 1
- 390 IF ((ITMCTR/TCNT)*TCNT)=ITMCTR THEN 430
- 400 FOR I=1 TO 15 : JK=JK+1
- 410 NEXT
- 420 GOTO 450
- 430 GOSUB 800 ' CALL TGTPRT(TROW,TCOL,TARARR)
- 440 TCOL = TCOL + 1
- 450 GOSUB 860 ' CALL SHOOT(GUN,GCOL)
- 460 IF ((ITMCTR/GCNT)*GCNT)=ITMCTR THEN GOSUB 1010 ` CALL GUNPRT(GROW,GCOL,GUN
- 470 GOSUB 1100 ` CALL HIT(GROW,ETC...)
- 480 IF GROW>0 THEN 320
- 490 GUN = 0 ' .FALSE.
- 500 GROW = 22
- 510 NOSHOT = NOSHOT + 1
- 520 GOSUB 1320 ' CALL PRTTST(NOSHOT,NOHIT,SCORE)
- 530 IF NOSHOT<10 THEN 320
- 540 LOCATE 24,1,0 : PRINT " GAME OVER...DO YOU WANT TO PLAY AGAIN ('Y'|'N')";
- 550 INPUT R$
- 560 IF LEFT$(R$,1) = "Y" THEN 190
- 570 IF R$="" THEN 190
- 580 END
- 590 CLS
- 600 INIT = 0
- 610 LOCATE 24,1,1
- 620 PRINT TAB(8);"TYPE 5 TO FIRE GUN"
- 630 PRINT TAB(13);"4 TO MOVE GUN LEFT"
- 640 PRINT TAB(13);"6 TO MOVE GUN RIGHT"
- 650 PRINT
- 660 PRINT TAB(7);"YOUR SKILL LEVEL IS ";DIFLEV
- 670 PRINT
- 680 PRINT TAB(10);"SHOTS FIRED 0"
- 690 PRINT TAB(10);"NO. OF HITS 0"
- 700 PRINT
- 710 PRINT TAB(12);"SCORE 0"
- 720 PRINT
- 730 PRINT TAB(60);"U"
- 740 PRINT
- 750 RETURN
- 760 J = FNRAND(12)
- 770 TARARR$ = TARNAM$(J)
- 780 TROW = FNRAND(10)
- 790 RETURN
- 800 LOCATE TROW,TCOL,0
- 810 PRINT " ";
- 820 IF TCOL <= 70 THEN PRINT TARARR$ : RETURN
- 830 PRINT SPC(5)
- 840 TCOL = -1
- 850 RETURN
- 860 KBRD$=INKEY$
- 870 IF KBRD$="" THEN RETURN
- 880 STRING = ASC(KBRD$)
- 890 IF STRING=53 THEN GUN = -1
- 900 IF GUN THEN RETURN
- 910 I=0
- 920 IF STRING=52 THEN I=-1
- 930 IF STRING=54 THEN I=+1
- 940 IF I=0 THEN RETURN
- 950 GCOL = GCOL + I
- 960 IF GCOL<44 THEN GCOL = 44
- 970 IF GCOL>74 THEN GCOL=74
- 980 TEMP=GCOL-1
- 990 LOCATE GROW,GCOL : PRINT " U "
- 1000 RETURN
- 1010 IF NOT GUN THEN RETURN
- 1020 OLDROW = GROW
- 1030 GROW = GROW - 1
- 1040 LOCATE OLDROW,GCOL
- 1050 IF OLDROW<>22 THEN PRINT SPC(2)
- 1060 IF GROW <= 0 THEN RETURN
- 1070 LOCATE GROW,GCOL
- 1080 PRINT " ^"
- 1090 RETURN
- 1100 IF GROW<>TROW THEN RETURN
- 1110 IF (TCOL+3-HWIN/2-GCOL)>0 THEN RETURN
- 1120 IF (TCOL+2+(HWIN+1)/2-GCOL)<0 THEN RETURN
- 1130 ' ---
- 1140 ' FOUND A HIT
- 1150 ' ---
- 1160 NOHIT = NOHIT + 1
- 1170 NEWTCOL = TCOL - 5
- 1180 FOR J = 1 TO 2
- 1190 LOCATE TROW,NEWTCOL,0:BEEP:PRINT " HIT "
- 1200 FOR I=1 TO 42
- 1210 KP=KP+1
- 1220 NEXT I
- 1230 LOCATE TROW,NEWTCOL,0:BEEP:PRINT " "
- 1240 FOR I=1 TO 42
- 1250 KP=KP-1
- 1260 NEXT I
- 1270 NEXT J
- 1280 TCOL = 0
- 1290 GROW = 0
- 1300 SCORE = SCORE+200*NOHIT/(NOSHOT+1)+150*DIFLEV/TCNT
- 1310 RETURN
- 1320 LOCATE 17,23 : PRINT NOSHOT
- 1330 LOCATE 18,23 : PRINT NOHIT
- 1340 LOCATE 20,20 : PRINT SCORE
- 1350 RETURN
- 1360 MIN = VAL(MID$(TIME$,4,2))
- 1370 SECONDS = (VAL(RIGHT$(TIME$,2))*MIN)-DELTA
- 1380 RETURN
-